Computers typically include memory subsystems that allow for data storage and retrieval. The memory subsystems often include at least one memory board and a set of memory modules, such as Dual In-Line Memory Modules (DIMMs), which may be loaded into slots that are present on the memory board. The spacing of these memory modules is constrained by mechanical board space requirements and the ability to cool the memory modules.
When the memory modules are loaded into the slots such that the modules are spaced closely together, the amount of data that may be stored on the memory board is maximized. However, these memory modules have less available air flow between them and are more difficult to cool. Thus, memory modules that are spaced closer together must be run at a lower power (i.e., at a lower frequency).
When the memory modules are loaded into the slots such that the modules are spaced further apart from each other, the memory access time may be minimized since the ability to cool the modules is increased and the modules to be run at higher frequencies. However, the increased spacing between the modules lowers the amount of data that may be stored on the memory board.
The memory subsystems of currently available computer systems require that a sacrifice be made of either memory size, memory performance (i.e., access time), or both. No one piece of hardware is capable of optimizing a memory subsystem for performance and memory size, depending on the need of the computer system.